签名说明
由于 XT 需要为第三方平台提供一些开放接口,因此需要考虑数据安全问题,例如数据是否被篡改、数据是否过期、数据是否可以重复提交以及接口的访问频率。其中,数据是否被篡改是最重要的问题。
-
请先在用户中心申请 appkey 和 secretkey,每个用户的 appkey 和 secretkey 都不同。
-
添加 timestamp,其值应为发送请求时的 unix 时间戳(毫秒),数据的时效性基于此值计算。
-
添加 signature,其值通过特定的签名算法规则获得。
-
添加 recvwindow(定义请求的有效时间)。有效时间目前相对简单,统一固定为某个值。
- 当服务器收到请求时,会检查请求中的时间戳,确保其在 2 到 60 秒之间。
- 任何时间戳超过 5000 毫秒的请求都被视为无效。
- 可以使用可选参数设置时间窗口值:
recvWindow
。 - 如果服务器判断客户端的时间戳比服务器提前超过一秒,请求也将无效。
- 在线条件下,交易的时效性并不总是 100% 可靠,导致您的本地程序与 XT 服务器之间存在不同程度的延迟。这就是我们提供
recvWindow
参数的原因——如果您进行高频交易并需要更严格的交易时效性,可以调整recvWindow
参数以更好地满足您的需求。
⚠️ 不建议使用超过 5 秒的 RecvWindow。
-
添加 algorithm(签名方法/算法)。用户根据哈希协议计算签名,推荐使用 HmacSHA256。支持的算法如下:
- HmacMD5
- HmacSHA1
- HmacSHA224
- HmacSHA256(推荐)
- HmacSHA384
- HmacSHA512
参数示例
名称 | 必需 | 示例 | 描述 |
---|---|---|---|
validate-appkey | true | dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83 | - |
validate-timestamp | true | 1641446237201 | - |
validate-signature | true | 0a7d0b5e802eb5e52ac0cfcd6311b0faba6e2503a9a8d1e2364b38617877574d | - |
validate-recvwindow | true | 5000(毫秒) | - |
validate-algorithms | true | HmacSHA256 | HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512。默认:HmacSHA256 |
validate-signversion | false | 1.0 | 保留字段,签名版本号 |